package traingo

import (
	"context"
	"github.com/chromedp/chromedp"
	"github.com/sirupsen/logrus"
	"time"
)

func (s *TraingoStudy) userLogin() chromedp.ActionFunc {
	return func(ctx context.Context) error {
		// 等待登录页面加载完毕

		chromedp.WaitVisible(`#app`, chromedp.ByID).Do(ctx)

		// 1. 输入账号密码, SendKeys() 也可以 输入值，但是通常是用来模拟键盘事件来配合页面测试，例如enter按下时页面执行某些操作
		chromedp.SetValue(`document.getElementsByClassName("ant-input ant-input-lg")[0]`, s.username,
			chromedp.ByJSPath).Do(ctx)
		chromedp.SetValue(`document.getElementsByClassName("ant-input ant-input-lg")[1]`, s.pwd,
			chromedp.ByJSPath).Do(ctx)
		// 等待两秒
		chromedp.Sleep(1 * time.Second).Do(ctx)
		// 点击登录按钮
		chromedp.Click(`document.getElementsByClassName("ant-btn ant-btn-primary ant-btn-lg")[0]`,
			chromedp.ByJSPath).Do(ctx)
		// 获取到token后继续执行后面的操作
		//<-s.remoteLoginC
		logrus.Debug("用户登录操作已完成")
		chromedp.Sleep(time.Second * 2).Do(ctx)
		chromedp.Click(`document.getElementsByClassName("ant-menu-overflow-item ant-menu-item ant-menu-item-only-child")[1]`, chromedp.ByJSPath).Do(ctx)
		chromedp.Sleep(time.Second * 1).Do(ctx)
		chromedp.Click(`document.getElementsByClassName("ant-spin-container")[0].querySelectorAll('li')[3]`, chromedp.ByJSPath).Do(ctx)
		chromedp.Sleep(time.Second * 1).Do(ctx)
		chromedp.Click(`document.getElementsByClassName("cover-content cover-orange")[0]`, chromedp.ByJSPath).Do(ctx)
		chromedp.Sleep(time.Second * 1).Do(ctx)
		chromedp.Click(`document.getElementsByClassName("ant-btn ant-btn-primary ant-btn-lg")[0]`, chromedp.ByJSPath).Do(ctx)
		chromedp.Sleep(time.Second * 1).Do(ctx)
		chromedp.Click(`document.getElementsByClassName("ant-btn ant-btn-primary")[1]`, chromedp.ByJSPath).Do(ctx)
		chromedp.Sleep(time.Second * 1).Do(ctx)
		chromedp.Click(`document.getElementsByClassName("ant-btn ant-btn-primary")[2]`, chromedp.ByJSPath).Do(ctx)
		chromedp.Sleep(time.Second * 6).Do(ctx)
		return nil
	}
}
